import type { PageParam, PageResult } from '@vben/request';

import { requestClient } from '#/api/request';

export namespace AiPromptVersionsApi {
  /** 提示词版本说明信息 */
  export interface PromptVersions {
    id: number; // 提示词版本id
    promptId?: number; // 提示词ID
    versionNum?: string; // 版本号
    content?: string; // 版本内容
    changeLog: string; // 变更说明
    variableSchema: string; // 变量说明
    metadata: string; // 其他参数
    effectImg: string; // 效果展示图片
  }
}

/** 查询提示词版本说明分页 */
export function getPromptVersionsPage(
  data: PageParam,
  desensitize: boolean,
  encrypt: boolean,
) {
  return requestClient.post<PageResult<AiPromptVersionsApi.PromptVersions>>(
    '/ai/prompt-versions/page',
    data,
    { desensitize, encrypt },
  );
}

/** 查询提示词版本说明详情 */
export function getPromptVersions(id: number, versionNum: string) {
  return requestClient.get<AiPromptVersionsApi.PromptVersions>(
    `/ai/prompt-versions/get?id=${id}&versionNum=${versionNum}`,
  );
}

/** 新增提示词版本说明 */
export function createPromptVersions(data: AiPromptVersionsApi.PromptVersions) {
  return requestClient.post('/ai/prompt-versions/create', data);
}

/** 修改提示词版本说明 */
export function updatePromptVersions(data: AiPromptVersionsApi.PromptVersions) {
  return requestClient.put('/ai/prompt-versions/update', data);
}

/** 删除提示词版本说明 */
export function deletePromptVersions(id: number) {
  return requestClient.delete(`/ai/prompt-versions/delete?id=${id}`);
}

/** 批量删除提示词版本说明 */
export function deletePromptVersionsList(ids: number[]) {
  return requestClient.delete(
    `/ai/prompt-versions/delete-list?ids=${ids.join(',')}`,
  );
}

/** 导出提示词版本说明 */
export function exportPromptVersions(params: any) {
  return requestClient.download('/ai/prompt-versions/export-excel', { params });
}

/** 查询提示词版本号列表 */
export function getPromptVersionNumList(promptId: number) {
  return requestClient.post<AiPromptVersionsApi.PromptVersions[]>(
    '/ai/prompt-versions/simple-list',
    { promptId },
  );
}
